<template>
  <div class="app-container">
    <el-form :model="queryParam" ref="queryForm" :inline="true">
      <el-form-item label="题目ID：">
        <el-input v-model="queryParam.id" clearable></el-input>
      </el-form-item>
      <el-form-item label="年级：">
        <el-select v-model="queryParam.level" placeholder="年级"  @change="levelChange" clearable>
          <el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="学科：">
        <el-select v-model="queryParam.subjectId" clearable>
          <el-option v-for="item in subjectFilter" :key="item.key" :value="item.value"
                     :label="item.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="题型：">
        <el-select v-model="queryParam.questionType" clearable>
          <el-option v-for="item in questionType" :key="item.key" :value="item.value" :label="item.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="submitForm">查询</el-button>
                <el-button type="primary" @click="search">刷新数据</el-button>
        <el-popover placement="bottom" trigger="click">
        
        </el-popover>
      </el-form-item>
    </el-form>
    <el-table :data="tableData" border fit highlight-current-row style="width: 100%">
      <el-table-column prop="questionId" label="Id" width="90px"/>
      <el-table-column prop="courseId" label="学科" width="120px"/>
      <el-table-column prop="type" label="题型"  width="70px"/>
      <el-table-column prop="questionName" label="题干" show-overflow-tooltip/>
      <el-table-column prop="score" label="分数" width="60px"/>
      <el-table-column prop="difficult" label="难度" width="60px"/>
      <el-table-column prop="createTime" label="创建时间" width="160px"/>
      <el-table-column label="操作" align="center" width="220px">
        <template slot-scope="{row}">
          <el-button size="mini"   @click="showQuestion(row)">预览</el-button>
          <el-button size="mini"  @click="editQuestion(row)">编辑</el-button>
          <el-button size="mini"  type="danger" @click="deleteQuestion(row)" class="link-left">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
    <pagination v-show="total>0" :total="total" :page.sync="queryParam.pageIndex" :limit.sync="queryParam.pageSize"
                @pagination="search"/>
    <el-dialog :visible.sync="questionShow.dialog" style="width: 100%;height: 100%">
      <QuestionShow :qType="questionShow.qType" :question="questionShow.question" :qLoading="questionShow.loading"/>
    </el-dialog>
  </div>
</template>

<script>
import { mapGetters, mapState, mapActions } from 'vuex'
import Pagination from '@/components/Pagination'
import QuestionShow from '@/components/Show'


export default {
  components: { Pagination, QuestionShow },
  data () {
    return {

      editUrlEnum :[
        {key :'1',
        name:'单选题',
        value:'question/edit/single'} ,
         {key :'2',
        name:'多选题',
        value:'question/edit/mmultiple'},
      ],

      levelEnum:[
       { key :'1',value:'一年级'},
      { key :'2',value:'二年级'},
      { key :'3',value:'三年级'},
      { key :'4',value:'四年级'},
      { key :'5',value:'大学年级'},
       ] ,
             subjectFilter: [ 
       { key :'1',value:'语文'},
      { key :'2',value:'数学'},
      { key :'3',value:'英语'},
      { key :'4',value:'java'},
      { key :'5',value:'c++'},
       ] ,
      queryParam: {
        id: 99,
        level: 0,
        subjectId: null,
        pageIndex: 1,
        pageSize: 10
      },
          questionType: [
       { key :'1',value:'单选题'},
      { key :'2',value:'多选题'},
      { key :'3',value:'简答题'},
      { key :'4',value:'作文'},
 
       ] ,

      listLoading: true,
      tableData: [


      ],
      total: 0,
      questionShow: {
        qType: 1,
        dialog: false,
        question: null,
        loading: false
      }
    }
  },
    created () {
   // this.initSubject()
   // this.search()
  },
  methods: {
    submitForm () {
      this.queryParam.pageIndex = 1
      this.search()
    },
    search () {
      this.listLoading = true
         this.$http.get("question/get").then(
         re=>{
           const res = re
           if(res!==null){

          this.tableData =res.data
                  console.log(res.list instanceof Array)
                  console.log(res.data.list)
          console.log("加载数据成功")
           }else{
             console.log("加载数据失败")
           }
          
             }
     );  


      // questionApi.pageList(this.queryParam).then(data => {
      //   const re = data.response
      //   this.tableData = re.list
      //   this.total = re.total
      //   this.queryParam.pageIndex = re.pageNum
      //   this.listLoading = false
      // })
    },
    levelChange () {
      this.queryParam.subjectId = null
     // this.subjectFilter = this.subjects.filter(data => data.level === this.queryParam.level)
    },
    addQuestion () {
      this.$router.push('/exam/question/edit/singleChoice')
    },
    showQuestion (row) {

      let _this = this
      this.questionShow.dialog = true
      this.questionShow.loading = true
   
 this.$http.get("question/id?id="+row.questionId).then(
         re=>{
        
         _this.questionShow.qType = re.data.type

        _this.questionShow.question = re.data
        _this.questionShow.loading = false
             console.log("question :"+_this.questionShow.question.items)
             console.log("type :"+re.data.questionType)

             console.log("type :"+_this.questionShow.qType)
         })

      // questionApi.select(row.id).then(re => {
      //   _this.questionShow.qType = re.response.questionType
      //   _this.questionShow.question = re.response
      //   _this.questionShow.loading = false
      // })
    },
    editQuestion (row) {

      let url ='singleProblem'
      this.$router.push({ path: url ,query: { id: row.questionId }})

     // this.$router.push({ path: url, query: { id: row.id } })
    },
    deleteQuestion (row) {
      let _this = this
      questionApi.deleteQuestion(row.id).then(re => {
        if (re.code === 1) {
          _this.search()
          _this.$message.success(re.message)
        } else {
          _this.$message.error(re.message)
        }
      })
    },
  //     enumFormat: (state) => (arrary, key) => {
  //   return format(arrary, key)
  // },
    questionTypeFormatter (row, column, cellValue, index) {
      return this.enumFormat(this.questionType, cellValue)
    },
    subjectFormatter (row, column, cellValue, index) {
      return this.subjectEnumFormat(cellValue)
    },
  //     computed: {
  //   ...mapGetters('enumItem', ['enumFormat']),
  //   ...mapState('enumItem', {
  //     questionType: state => state.exam.question.typeEnum,
  //     editUrlEnum: state => state.exam.question.editUrlEnum,
  //     levelEnum: state => state.user.levelEnum
  //   }),
  //   ...mapGetters('exam', ['subjectEnumFormat']),
  //   ...mapState('exam', { subjects: state => state.subjects })
  // }
  }

}
</script>
